草庐IT

PHP readdir 和排序

全部标签

java - 这个 HashSet 如何产生排序后的输出?

即使哈希集未排序,以下代码也会生成输出[1,2]。Setset=newHashSet();set.add(newInteger(2));set.add(newInteger(1));System.out.println(set);这是为什么? 最佳答案 编辑:从Java8及更高版本开始,以下内容不再适用。这证明您不应该依赖未记录的Java行为。此行为是由几个不同的原因引起的:整数散列到自己在Java中,HashMap和HashSet由数组备份他们还使用高位来修改低位来修改散列;如果散列在0..15范围内,则不会被修改对象进入哪个桶取

java - 对集合中的所有偶数进行升序排序,然后对所有奇数进行降序排序

这是一道面试题。给出了一些随机数(假设是整数数组)。我们如何才能先对所有偶数进行升序排序,然后对所有奇数进行降序排序。哪个系列最适合。输入数字:1267134978631保存在集合中的输出:6123478673191 最佳答案 任何支持使用自定义比较器排序的集合都可以-甚至是数组。按如下方式实现您的自定义比较器:publicintcompare(intx,inty){if(x&1==y&1){//Bothnumbersareoddorbothnumbersareevenif(x&1==0){//Bothnumbersareeven:

java - 按频率排序字符串数组的最有效方法

我有一个字符串数组:String[]stringArray={"x","y","z","x","x","y","a"};将其订购为较小的Collection的最快/最有效的方法是什么?按照每个String的频率顺序与它的频率有关吗?我想使用String作为HashMap中的键但这不会按频率排序我考虑的另一种方法是使用TreeMap带有该整数的字符串列表,但似乎涉及很多检查..我尽量避免使用多个循环如果可能的话,我的String数组将比上面的大得多。谢谢!编辑我想要的只是能够按频率顺序输出字符串,并且最好能够将该字符串与其在数组中的频率配对,例如两个输出数组:["x","y","z","

java - 如何使用键降序对 HashMap 进行排序

如何使用键降序对HashMap进行排序。请举例说明。以及有多少种方法可以对HashMap进行排序。请详细说明 最佳答案 HashMap不支持排序。他们将条目存储在桶中,他们认为它如何适合,只是基于键的hashCode值。它们适用于存储东西并在事后查找它们,但不适合迭代它们的内容(这显然是您想要做的),因为您不能依赖它们的顺序并且迭代它通常很昂贵。尝试使用TreeMap代替。您可以指定一个自定义比较器,它与默认比较器正好相反。在这种情况下,您的条目将按降序顺序排列。Collections.reverseOrder将为您创建这样一个比较

java - 在Java中对二维字符串数组进行排序

我知道以前可能有人问过这个问题,但我找不到合适的答案。所以说我有这个数组:String[][]theArray={{"james","30.0"},{"joyce","35.0"},{"frank","3.0"},{"zach","34.0"}};有没有办法通过每个子元素的第二个元素对这个数组进行降序排序。所以我会得到这样的东西。theArray={{"joyce","35.0"},{"zach","34.0"},{"james","30.0"},{"frank","3.0"}}; 最佳答案 使用Arrays.sort(arr,co

java - 根据运行时属性对对象列表进行排序

我有一个ValueObjects的List[画外音]。这些对象有很多属性和相应的获取/设置方法。我想根据我将在运行时获得的属性对这个List进行排序。让我详细解释一下...我的语音是这样的:publicclassEmployee{Stringname;Stringid;privateStringgetName(){returnname;}privateStringgetId(){returnid;}}我将在运行时得到一个字符串sortType,它可以是"id"或"name"。我想根据String的值对列表进行排序。我曾尝试同时使用Comparator和反射,但没有成功。可能是我没有正确

java - 在Java中以反向字母顺序对字符串数组进行排序

我的任务是将此代码转换为反向排序,但我终究无法弄清楚如何去做。这些是我的排序、查找最大和交换方法。我觉得我在这里遗漏了一些明显的东西,非常感谢任何帮助。publicstaticvoidsort(String[]arr){for(intpass=1;pass0){largestPos=i;}}returnlargestPos;}publicstaticvoidswap(String[]arr,intfirst,intsecond){Stringtemp=arr[first];arr[first]=arr[second];arr[second]=temp;}}

java - 对字符串的迭代器进行排序

我有一个字符串迭代器。为了排序,我需要从中创建一个列表并使用Collections.sort(list)对其进行排序。有什么简单的方法可以对迭代器进行排序。 最佳答案 迭代器不是容器,它是一种遍历容器元素的实用程序。因此,如果您只能访问迭代器,则无法更改迭代器的创建者定义的迭代顺序。如果您无法更改原始容器,则必须将迭代器传递的元素收集到一个新的集合中,并在其中对它们进行排序。(了解迭代器的可能性的一个好方法是查看JDK类的源代码或实现自己的迭代器) 关于java-对字符串的迭代器进行排序

Java 8 对类成员的属性进行排序

类声明:classEntity{Stringname;SubEntitysubEntity;//subEntityhasamethodgetAmount()whichreturnsint}我知道使用Java8我们可以这样排序:entities.sort(Comparator.comparing(Entity::name));但是有没有一种方法可以根据子实体的属性对其进行排序,例如:entities.sort(Comparator.comparing(Entity::SubEntity::getAmount()));P.S:任何一行都全下。 最佳答案

java - 如何在不破坏原始数组的情况下对数组进行排序?

我有原始数组publicstaticvoidmain(String[]arg){int[]array={1,5,6,8,4,2}for(inti=0;i输出是List1=1,5,6,8,4,2List2=1,2,4,5,6,8我想要的答案是List1=1,5,6,8,4,2List2=1,5,6,8,4,2即使在排序之后。我该怎么做? 最佳答案 int[]originalArray={1,5,6,8,4,2};int[]backup=Arrays.copyOf(originalArray,originalArray.length);